package map;

import java.util.*;

/**
 * Map的遍历
 * Map有三种遍历方式
 * 1.遍历所有的key
 * 2.遍历每一组键值对
 *
 */
public class MapDemo2 {
    public static void main(String[] args) {
        Map<String,Integer>map = new HashMap<>();
        map.put("语文", 99);
        map.put("数学", 99);
        map.put("英语", 10);
        map.put("地理", 50);
        map.put("历史", 50);
        map.put("生物", 50);
        System.out.println(map);
        /*
        遍历所有的key
        Set<k> keyStet()
        将当前Map中所有的key中一个set集合形式返回
         */
        Set<String> keySet = map.keySet();
        for (String key : keySet) {
            System.out.println("key" + key);
        }
            Set<Map.Entry<String,Integer>> entrySet = map.entrySet();
            for (Map.Entry<String,Integer>e:entrySet){
                String Key = e.getKey();
                Integer value = e.getValue();
                System.out.println(Key + ":" + value);
            }

        Collection<Integer> values = map.values();
            for (Integer value : values){
                System.out.println("value" + value);
            }

            /*
            JDK8之后为集合和Map提供了新的遍历方式:forEach
            它是基于lambda表达式遍历的
             */
//            values.forEach(value-> System.out.println(values));
            values.forEach(System.out::println);

            //遍历Map时为遍历每组键值对
            map.forEach((k,v)->System.out.println(k+":"+v));
        }
    }

